home *** CD-ROM | disk | FTP | other *** search
/ PC Answers 2003 September / PC Answers September 2003.iso / Software / freeware / pixeltoolbox / Setup.exe / Main / PixelToolbox.exe / PixelToolbox.dxr / Scripts_80_32bit image functions.ls < prev    next >
Encoding:
Text File  |  2002-06-08  |  13.8 KB  |  315 lines

  1. global gSize, gCast, gFirstColor, gSecondColor, myCurrentImage, myCurrentPreview, myCurrentSelection, gSelectRect, gSelectionEdited, myStartImage, gHSL, gBC, gBCMin, gBCMax
  2.  
  3. on invertImage32
  4.   cursor(4)
  5.   if sprite(1).pUndoTrigger = 0 then
  6.     sprite(1).pUndoTrigger = 1
  7.   end if
  8.   if sprite(4).left = 800 then
  9.     member("state1 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
  10.     myCurrentImage = duplicate(member(gSize & "x" & gSize, gCast).image)
  11.     myCurrentPreview = duplicate(member("preview", gCast).image)
  12.     repeat with Y = 0 to integer(gSize) - 1
  13.       repeat with X = 0 to integer(gSize) - 1
  14.         currentColor = myCurrentImage.getPixel(X, Y)
  15.         myCurrentImage.setPixel(X, Y, rgb(255 - currentColor.red, 255 - currentColor.green, 255 - currentColor.blue))
  16.       end repeat
  17.     end repeat
  18.     member(gSize & "x" & gSize, gCast).image.copyPixels(myCurrentImage, myCurrentImage.rect, myCurrentImage.rect)
  19.     updateStage()
  20.     fnUpdatePreview()
  21.     sprite(35).pState = 0
  22.     sendSprite(35, #setMember)
  23.     member("state2 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
  24.     myCurrentImage = VOID
  25.     myCurrentPreview = VOID
  26.   else
  27.     if gSelectionEdited = 0 then
  28.       if the shiftDown <> 1 then
  29.         myStartImage.fill(gSelectRect, gSecondColor)
  30.       end if
  31.       member("state1 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
  32.     end if
  33.     repeat with Y = 0 to gSelectRect.height - 1
  34.       repeat with X = 0 to gSelectRect.width - 1
  35.         currentColor = myCurrentSelection.getPixel(X, Y)
  36.         myCurrentSelection.setPixel(X, Y, rgb(255 - currentColor.red, 255 - currentColor.green, 255 - currentColor.blue))
  37.       end repeat
  38.     end repeat
  39.     myCurrentImage.copyPixels(myStartImage, myCurrentImage.rect, myStartImage.rect)
  40.     myCurrentImage.copyPixels(myCurrentSelection, gSelectRect, myCurrentSelection.rect)
  41.     member(gSize & "x" & gSize, gCast).image.copyPixels(myCurrentImage, myCurrentImage.rect, myCurrentImage.rect)
  42.     updateStage()
  43.     fnUpdatePreview()
  44.     gSelectionEdited = 1
  45.   end if
  46.   cursor(0)
  47. end
  48.  
  49. on colorizeImage32
  50.   cursor(4)
  51.   if sprite(1).pUndoTrigger = 0 then
  52.     sprite(1).pUndoTrigger = 1
  53.   end if
  54.   if sprite(4).left = 800 then
  55.     member("state1 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
  56.     myCurrentImage = duplicate(member(gSize & "x" & gSize, gCast).image)
  57.     myCurrentPreview = duplicate(member("preview", gCast).image)
  58.     currentLum = integer((gFirstColor.red * 0.29999999999999999) + (gFirstColor.green * 0.59999999999999998) + (gFirstColor.blue * 0.10000000000000001))
  59.     repeat with Y = 0 to integer(gSize) - 1
  60.       repeat with X = 0 to integer(gSize) - 1
  61.         currentColor = myCurrentImage.getPixel(X, Y)
  62.         grayValue = integer((currentColor.red * 0.29999999999999999) + (currentColor.green * 0.59999999999999998) + (currentColor.blue * 0.10000000000000001))
  63.         valueDiff = (grayValue - currentLum) / 2
  64.         myCurrentImage.setPixel(X, Y, rgb(integer(((gFirstColor.red + grayValue) / 2) + valueDiff), integer(((gFirstColor.green + grayValue) / 2) + valueDiff), integer(((gFirstColor.blue + grayValue) / 2) + valueDiff)))
  65.       end repeat
  66.     end repeat
  67.     member(gSize & "x" & gSize, gCast).image.copyPixels(myCurrentImage, myCurrentImage.rect, myCurrentImage.rect)
  68.     updateStage()
  69.     fnUpdatePreview()
  70.     sprite(35).pState = 0
  71.     sendSprite(35, #setMember)
  72.     member("state2 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
  73.     myCurrentImage = VOID
  74.     myCurrentPreview = VOID
  75.   else
  76.     if gSelectionEdited = 0 then
  77.       if the shiftDown <> 1 then
  78.         myStartImage.fill(gSelectRect, gSecondColor)
  79.       end if
  80.       member("state1 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
  81.     end if
  82.     currentLum = integer((gFirstColor.red * 0.29999999999999999) + (gFirstColor.green * 0.59999999999999998) + (gFirstColor.blue * 0.10000000000000001))
  83.     repeat with Y = 0 to gSelectRect.height - 1
  84.       repeat with X = 0 to gSelectRect.width - 1
  85.         currentColor = myCurrentSelection.getPixel(X, Y)
  86.         grayValue = integer((currentColor.red * 0.29999999999999999) + (currentColor.green * 0.59999999999999998) + (currentColor.blue * 0.10000000000000001))
  87.         valueDiff = (grayValue - currentLum) / 2
  88.         myCurrentSelection.setPixel(X, Y, rgb(integer(((gFirstColor.red + grayValue) / 2) + valueDiff), integer(((gFirstColor.green + grayValue) / 2) + valueDiff), integer(((gFirstColor.blue + grayValue) / 2) + valueDiff)))
  89.       end repeat
  90.     end repeat
  91.     myCurrentImage.copyPixels(myStartImage, myCurrentImage.rect, myStartImage.rect)
  92.     myCurrentImage.copyPixels(myCurrentSelection, gSelectRect, myCurrentSelection.rect)
  93.     member(gSize & "x" & gSize, gCast).image.copyPixels(myCurrentImage, myCurrentImage.rect, myCurrentImage.rect)
  94.     updateStage()
  95.     fnUpdatePreview()
  96.     gSelectionEdited = 1
  97.   end if
  98.   cursor(0)
  99. end
  100.  
  101. on blurImage32
  102.   cursor(4)
  103.   if sprite(1).pUndoTrigger = 0 then
  104.     sprite(1).pUndoTrigger = 1
  105.   end if
  106.   if sprite(4).left = 800 then
  107.     member("state1 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
  108.     myCurrentImage = duplicate(member(gSize & "x" & gSize, gCast).image)
  109.     myCurrentPreview = duplicate(member("preview", gCast).image)
  110.     imgW = myCurrentImage.width
  111.     imgH = myCurrentImage.height
  112.     offsetL = [[0, 0], [2, 2], [0, 2], [2, 0], [0, 1], [2, 1], [1, 0], [1, 2], [1, 1]]
  113.     myBlend = 4 * 255 / offsetL.count
  114.     tempImage = image(imgW + 2, imgH + 2, 32)
  115.     myRect = rect(0, 0, myCurrentImage.width, myCurrentImage.height)
  116.     repeat with j = 1 to 9
  117.       destRect = myRect.offset(offsetL[j][1], offsetL[j][2])
  118.       tempImage.copyPixels(myCurrentImage, destRect, myRect, [#blendLevel: myBlend])
  119.     end repeat
  120.     myCurrentImage = tempImage.duplicate().crop(myRect.offset(1, 1))
  121.     member(gSize & "x" & gSize, gCast).image.copyPixels(myCurrentImage, myCurrentImage.rect, myCurrentImage.rect)
  122.     updateStage()
  123.     fnUpdatePreview()
  124.     sprite(35).pState = 0
  125.     sendSprite(35, #setMember)
  126.     member("state2 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
  127.     myCurrentImage = VOID
  128.     myCurrentPreview = VOID
  129.     tempImage = VOID
  130.   else
  131.     if gSelectionEdited = 0 then
  132.       if the shiftDown <> 1 then
  133.         myStartImage.fill(gSelectRect, gSecondColor)
  134.       end if
  135.       member("state1 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
  136.     end if
  137.     mainAlpha = myCurrentSelection.extractAlpha()
  138.     imgW = myCurrentSelection.width
  139.     imgH = myCurrentSelection.height
  140.     offsetL = [[0, 0], [2, 2], [0, 2], [2, 0], [0, 1], [2, 1], [1, 0], [1, 2], [1, 1]]
  141.     myBlend = 4 * 255 / offsetL.count
  142.     tempImage = image(imgW + 2, imgH + 2, 32)
  143.     myRect = rect(0, 0, myCurrentSelection.width, myCurrentSelection.height)
  144.     repeat with j = 1 to 9
  145.       destRect = myRect.offset(offsetL[j][1], offsetL[j][2])
  146.       tempImage.copyPixels(myCurrentSelection, destRect, myRect, [#blendLevel: myBlend])
  147.     end repeat
  148.     myCurrentSelection = tempImage.duplicate().crop(myRect.offset(1, 1))
  149.     myCurrentSelection.useAlpha = 1
  150.     myCurrentSelection.setAlpha(mainAlpha)
  151.     myCurrentImage.copyPixels(myStartImage, myCurrentImage.rect, myStartImage.rect)
  152.     myCurrentImage.copyPixels(myCurrentSelection, gSelectRect, myCurrentSelection.rect)
  153.     member(gSize & "x" & gSize, gCast).image.copyPixels(myCurrentImage, myCurrentImage.rect, myCurrentImage.rect)
  154.     updateStage()
  155.     fnUpdatePreview()
  156.     gSelectionEdited = 1
  157.     tempImage = VOID
  158.     mainAlpha = VOID
  159.   end if
  160.   cursor(0)
  161. end
  162.  
  163. on sharpenImage32
  164.   cursor(4)
  165.   if sprite(1).pUndoTrigger = 0 then
  166.     sprite(1).pUndoTrigger = 1
  167.   end if
  168.   if sprite(4).left = 800 then
  169.     member("state1 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
  170.     myCurrentImage = duplicate(member(gSize & "x" & gSize, gCast).image)
  171.     myCurrentPreview = duplicate(member("preview", gCast).image)
  172.     imgW = myCurrentImage.width
  173.     imgH = myCurrentImage.height
  174.     offsetL = [[0, 0], [2, 2], [0, 2], [2, 0], [0, 1], [2, 1], [1, 0], [1, 2], [1, 1]]
  175.     myBlend = 4 * 255 / offsetL.count
  176.     tempImage = image(imgW + 2, imgH + 2, 32)
  177.     myRect = rect(0, 0, myCurrentImage.width, myCurrentImage.height)
  178.     repeat with j = 1 to 9
  179.       destRect = myRect.offset(offsetL[j][1], offsetL[j][2])
  180.       tempImage.copyPixels(myCurrentImage, destRect, myRect, [#blendLevel: myBlend])
  181.     end repeat
  182.     myBufferImage = tempImage.duplicate().crop(myRect.offset(1, 1))
  183.     repeat with Y = 0 to integer(gSize) - 1
  184.       repeat with X = 0 to integer(gSize) - 1
  185.         testColor = myBufferImage.getPixel(X, Y)
  186.         runningLevel = integer((testColor.red * 0.29999999999999999) + (testColor.green * 0.59999999999999998) + (testColor.blue * 0.10000000000000001))
  187.         testColor2 = myCurrentImage.getPixel(X, Y)
  188.         runningLevel2 = integer((testColor2.red * 0.29999999999999999) + (testColor2.green * 0.59999999999999998) + (testColor2.blue * 0.10000000000000001))
  189.         pixelDiff = runningLevel - runningLevel2
  190.         myCurrentImage.setPixel(X, Y, rgb(testColor2.red - pixelDiff, testColor2.green - pixelDiff, testColor2.blue - pixelDiff))
  191.       end repeat
  192.     end repeat
  193.     member(gSize & "x" & gSize, gCast).image.copyPixels(myCurrentImage, myCurrentImage.rect, myCurrentImage.rect)
  194.     updateStage()
  195.     fnUpdatePreview()
  196.     sprite(35).pState = 0
  197.     sendSprite(35, #setMember)
  198.     member("state2 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
  199.     myCurrentImage = VOID
  200.     myCurrentPreview = VOID
  201.     myBufferImage = VOID
  202.     tempImage = VOID
  203.   else
  204.     if gSelectionEdited = 0 then
  205.       if the shiftDown <> 1 then
  206.         myStartImage.fill(gSelectRect, gSecondColor)
  207.       end if
  208.       member("state1 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
  209.     end if
  210.     imgW = myCurrentSelection.width
  211.     imgH = myCurrentSelection.height
  212.     offsetL = [[0, 0], [2, 2], [0, 2], [2, 0], [0, 1], [2, 1], [1, 0], [1, 2], [1, 1]]
  213.     myBlend = 4 * 255 / offsetL.count
  214.     tempImage = image(imgW + 2, imgH + 2, 32)
  215.     myRect = rect(0, 0, myCurrentSelection.width, myCurrentSelection.height)
  216.     repeat with j = 1 to 9
  217.       destRect = myRect.offset(offsetL[j][1], offsetL[j][2])
  218.       tempImage.copyPixels(myCurrentSelection, destRect, myRect, [#blendLevel: myBlend])
  219.     end repeat
  220.     myBufferImage = tempImage.duplicate().crop(myRect.offset(1, 1))
  221.     repeat with Y = 0 to gSelectRect.height - 1
  222.       repeat with X = 0 to gSelectRect.width - 1
  223.         testColor = myBufferImage.getPixel(X, Y)
  224.         runningLevel = integer((testColor.red * 0.29999999999999999) + (testColor.green * 0.59999999999999998) + (testColor.blue * 0.10000000000000001))
  225.         testColor2 = myCurrentSelection.getPixel(X, Y)
  226.         runningLevel2 = integer((testColor2.red * 0.29999999999999999) + (testColor2.green * 0.59999999999999998) + (testColor2.blue * 0.10000000000000001))
  227.         pixelDiff = runningLevel - runningLevel2
  228.         myCurrentSelection.setPixel(X, Y, rgb(testColor2.red - pixelDiff, testColor2.green - pixelDiff, testColor2.blue - pixelDiff))
  229.       end repeat
  230.     end repeat
  231.     myCurrentImage.copyPixels(myStartImage, myCurrentImage.rect, myStartImage.rect)
  232.     myCurrentImage.copyPixels(myCurrentSelection, gSelectRect, myCurrentSelection.rect)
  233.     member(gSize & "x" & gSize, gCast).image.copyPixels(myCurrentImage, myCurrentImage.rect, myCurrentImage.rect)
  234.     updateStage()
  235.     fnUpdatePreview()
  236.     gSelectionEdited = 1
  237.     tempImage = VOID
  238.     myBufferImage = VOID
  239.   end if
  240.   cursor(0)
  241. end
  242.  
  243. on loadAdjustHSL
  244.   if sprite(1).pUndoTrigger = 1 then
  245.     sendSprite(189, #resetHSLSlider)
  246.     member("adj hsl - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
  247.     gHSL = duplicate(member(gSize & "x" & gSize, gCast).image)
  248.     updateStage()
  249.   else
  250.     beep()
  251.   end if
  252. end
  253.  
  254. on applyAdjustHSL
  255.   if gHSL <> VOID then
  256.     member("state1 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
  257.     myCurrentImage = member("adj hsl - " & gSize, gCast).image
  258.     myCurrentPreview = duplicate(member("preview", gCast).image)
  259.     member(gSize & "x" & gSize, gCast).image.copyPixels(myCurrentImage, myCurrentImage.rect, myCurrentImage.rect)
  260.     updateStage()
  261.     fnUpdatePreview()
  262.     sprite(35).pState = 0
  263.     sendSprite(35, #setMember)
  264.     member("state2 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
  265.     myCurrentImage = VOID
  266.     myCurrentPreview = VOID
  267.   else
  268.     beep()
  269.   end if
  270. end
  271.  
  272. on loadAdjustTone
  273.   if sprite(1).pUndoTrigger = 1 then
  274.     sendSprite(195, #resetBCSlider)
  275.     member("adj tone - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
  276.     gBC = duplicate(member(gSize & "x" & gSize, gCast).image)
  277.     imageMinMax = [127, 128]
  278.     repeat with Y = 0 to integer(gSize) - 1
  279.       repeat with X = 0 to integer(gSize) - 1
  280.         testColor = gBC.getPixel(X, Y)
  281.         runningLevel = integer((testColor.red * 0.29999999999999999) + (testColor.green * 0.59999999999999998) + (testColor.blue * 0.10000000000000001))
  282.         if runningLevel < imageMinMax[1] then
  283.           imageMinMax[1] = runningLevel
  284.         end if
  285.         if runningLevel > imageMinMax[2] then
  286.           imageMinMax[2] = runningLevel
  287.         end if
  288.       end repeat
  289.     end repeat
  290.     gBCMin = imageMinMax[1]
  291.     gBCMax = imageMinMax[2]
  292.     updateStage()
  293.   else
  294.     beep()
  295.   end if
  296. end
  297.  
  298. on applyAdjustTone
  299.   if gBC <> VOID then
  300.     member("state1 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
  301.     myCurrentImage = member("adj tone - " & gSize, gCast).image
  302.     myCurrentPreview = duplicate(member("preview", gCast).image)
  303.     member(gSize & "x" & gSize, gCast).image.copyPixels(myCurrentImage, myCurrentImage.rect, myCurrentImage.rect)
  304.     updateStage()
  305.     fnUpdatePreview()
  306.     sprite(35).pState = 0
  307.     sendSprite(35, #setMember)
  308.     member("state2 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
  309.     myCurrentImage = VOID
  310.     myCurrentPreview = VOID
  311.   else
  312.     beep()
  313.   end if
  314. end
  315.